/**
 */
package org.mro.grib.model.files.secondEdition.impl;

import org.eclipse.emf.ecore.EAttribute;
import org.eclipse.emf.ecore.EClass;
import org.eclipse.emf.ecore.EPackage;
import org.eclipse.emf.ecore.EReference;

import org.eclipse.emf.ecore.impl.EPackageImpl;

import org.mro.grib.model.files.firstEdition.FirstEditionPackage;

import org.mro.grib.model.files.firstEdition.grids.GridsPackage;

import org.mro.grib.model.files.firstEdition.grids.impl.GridsPackageImpl;

import org.mro.grib.model.files.firstEdition.impl.FirstEditionPackageImpl;

import org.mro.grib.model.files.firstEdition.sections.SectionsPackage;

import org.mro.grib.model.files.firstEdition.sections.impl.SectionsPackageImpl;

import org.mro.grib.model.files.secondEdition.GRIBFile;
import org.mro.grib.model.files.secondEdition.Message;
import org.mro.grib.model.files.secondEdition.SecondEditionFactory;
import org.mro.grib.model.files.secondEdition.SecondEditionPackage;
import org.mro.grib.model.files.secondEdition.dataRepresentations.DataRepresentationsPackage;
import org.mro.grib.model.files.secondEdition.dataRepresentations.impl.DataRepresentationsPackageImpl;
import org.mro.grib.model.files.secondEdition.products.ProductsPackage;
import org.mro.grib.model.files.secondEdition.products.impl.ProductsPackageImpl;
import org.mro.grib.model.files.secondEdition.products.meteorological.MeteorologicalPackage;
import org.mro.grib.model.files.secondEdition.products.meteorological.impl.MeteorologicalPackageImpl;

/**
 * <!-- begin-user-doc -->
 * An implementation of the model <b>Package</b>.
 * <!-- end-user-doc -->
 * @generated
 */
public class SecondEditionPackageImpl extends EPackageImpl implements SecondEditionPackage {
	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private EClass messageEClass = null;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private EClass gribFileEClass = null;

	/**
	 * Creates an instance of the model <b>Package</b>, registered with
	 * {@link org.eclipse.emf.ecore.EPackage.Registry EPackage.Registry} by the package
	 * package URI value.
	 * <p>Note: the correct way to create the package is via the static
	 * factory method {@link #init init()}, which also performs
	 * initialization of the package, or returns the registered package,
	 * if one already exists.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see org.eclipse.emf.ecore.EPackage.Registry
	 * @see org.mro.grib.model.files.secondEdition.SecondEditionPackage#eNS_URI
	 * @see #init()
	 * @generated
	 */
	private SecondEditionPackageImpl() {
		super(eNS_URI, SecondEditionFactory.eINSTANCE);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private static boolean isInited = false;

	/**
	 * Creates, registers, and initializes the <b>Package</b> for this model, and for any others upon which it depends.
	 * 
	 * <p>This method is used to initialize {@link SecondEditionPackage#eINSTANCE} when that field is accessed.
	 * Clients should not invoke it directly. Instead, they should simply access that field to obtain the package.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #eNS_URI
	 * @see #createPackageContents()
	 * @see #initializePackageContents()
	 * @generated
	 */
	public static SecondEditionPackage init() {
		if (isInited) return (SecondEditionPackage)EPackage.Registry.INSTANCE.getEPackage(SecondEditionPackage.eNS_URI);

		// Obtain or create and register package
		SecondEditionPackageImpl theSecondEditionPackage = (SecondEditionPackageImpl)(EPackage.Registry.INSTANCE.get(eNS_URI) instanceof SecondEditionPackageImpl ? EPackage.Registry.INSTANCE.get(eNS_URI) : new SecondEditionPackageImpl());

		isInited = true;

		// Obtain or create and register interdependencies
		FirstEditionPackageImpl theFirstEditionPackage = (FirstEditionPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(FirstEditionPackage.eNS_URI) instanceof FirstEditionPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(FirstEditionPackage.eNS_URI) : FirstEditionPackage.eINSTANCE);
		GridsPackageImpl theGridsPackage = (GridsPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(GridsPackage.eNS_URI) instanceof GridsPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(GridsPackage.eNS_URI) : GridsPackage.eINSTANCE);
		SectionsPackageImpl theSectionsPackage = (SectionsPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(SectionsPackage.eNS_URI) instanceof SectionsPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(SectionsPackage.eNS_URI) : SectionsPackage.eINSTANCE);
		org.mro.grib.model.files.secondEdition.grids.impl.GridsPackageImpl theGridsPackage_1 = (org.mro.grib.model.files.secondEdition.grids.impl.GridsPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(org.mro.grib.model.files.secondEdition.grids.GridsPackage.eNS_URI) instanceof org.mro.grib.model.files.secondEdition.grids.impl.GridsPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(org.mro.grib.model.files.secondEdition.grids.GridsPackage.eNS_URI) : org.mro.grib.model.files.secondEdition.grids.GridsPackage.eINSTANCE);
		org.mro.grib.model.files.secondEdition.sections.impl.SectionsPackageImpl theSectionsPackage_1 = (org.mro.grib.model.files.secondEdition.sections.impl.SectionsPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(org.mro.grib.model.files.secondEdition.sections.SectionsPackage.eNS_URI) instanceof org.mro.grib.model.files.secondEdition.sections.impl.SectionsPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(org.mro.grib.model.files.secondEdition.sections.SectionsPackage.eNS_URI) : org.mro.grib.model.files.secondEdition.sections.SectionsPackage.eINSTANCE);
		ProductsPackageImpl theProductsPackage = (ProductsPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(ProductsPackage.eNS_URI) instanceof ProductsPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(ProductsPackage.eNS_URI) : ProductsPackage.eINSTANCE);
		MeteorologicalPackageImpl theMeteorologicalPackage = (MeteorologicalPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(MeteorologicalPackage.eNS_URI) instanceof MeteorologicalPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(MeteorologicalPackage.eNS_URI) : MeteorologicalPackage.eINSTANCE);
		DataRepresentationsPackageImpl theDataRepresentationsPackage = (DataRepresentationsPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(DataRepresentationsPackage.eNS_URI) instanceof DataRepresentationsPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(DataRepresentationsPackage.eNS_URI) : DataRepresentationsPackage.eINSTANCE);

		// Create package meta-data objects
		theSecondEditionPackage.createPackageContents();
		theFirstEditionPackage.createPackageContents();
		theGridsPackage.createPackageContents();
		theSectionsPackage.createPackageContents();
		theGridsPackage_1.createPackageContents();
		theSectionsPackage_1.createPackageContents();
		theProductsPackage.createPackageContents();
		theMeteorologicalPackage.createPackageContents();
		theDataRepresentationsPackage.createPackageContents();

		// Initialize created meta-data
		theSecondEditionPackage.initializePackageContents();
		theFirstEditionPackage.initializePackageContents();
		theGridsPackage.initializePackageContents();
		theSectionsPackage.initializePackageContents();
		theGridsPackage_1.initializePackageContents();
		theSectionsPackage_1.initializePackageContents();
		theProductsPackage.initializePackageContents();
		theMeteorologicalPackage.initializePackageContents();
		theDataRepresentationsPackage.initializePackageContents();

		// Mark meta-data to indicate it can't be changed
		theSecondEditionPackage.freeze();

  
		// Update the registry and return the package
		EPackage.Registry.INSTANCE.put(SecondEditionPackage.eNS_URI, theSecondEditionPackage);
		return theSecondEditionPackage;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EClass getMessage() {
		return messageEClass;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getMessage_StartOffset() {
		return (EAttribute)messageEClass.getEStructuralFeatures().get(0);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getMessage_EndOffset() {
		return (EAttribute)messageEClass.getEStructuralFeatures().get(1);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getMessage_IndicatorSection() {
		return (EReference)messageEClass.getEStructuralFeatures().get(2);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getMessage_IdentificationSection() {
		return (EReference)messageEClass.getEStructuralFeatures().get(3);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getMessage_LocalUseSection() {
		return (EReference)messageEClass.getEStructuralFeatures().get(4);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getMessage_GridDefinitionSection() {
		return (EReference)messageEClass.getEStructuralFeatures().get(5);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getMessage_ProductDefinitionSection() {
		return (EReference)messageEClass.getEStructuralFeatures().get(6);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getMessage_DataRepresentationSection() {
		return (EReference)messageEClass.getEStructuralFeatures().get(7);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getMessage_BitMapSection() {
		return (EReference)messageEClass.getEStructuralFeatures().get(8);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getMessage_DataSection() {
		return (EReference)messageEClass.getEStructuralFeatures().get(9);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EClass getGRIBFile() {
		return gribFileEClass;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getGRIBFile_GribFile() {
		return (EAttribute)gribFileEClass.getEStructuralFeatures().get(0);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getGRIBFile_Message() {
		return (EReference)gribFileEClass.getEStructuralFeatures().get(1);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public SecondEditionFactory getSecondEditionFactory() {
		return (SecondEditionFactory)getEFactoryInstance();
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private boolean isCreated = false;

	/**
	 * Creates the meta-model objects for the package.  This method is
	 * guarded to have no affect on any invocation but its first.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public void createPackageContents() {
		if (isCreated) return;
		isCreated = true;

		// Create classes and their features
		messageEClass = createEClass(MESSAGE);
		createEAttribute(messageEClass, MESSAGE__START_OFFSET);
		createEAttribute(messageEClass, MESSAGE__END_OFFSET);
		createEReference(messageEClass, MESSAGE__INDICATOR_SECTION);
		createEReference(messageEClass, MESSAGE__IDENTIFICATION_SECTION);
		createEReference(messageEClass, MESSAGE__LOCAL_USE_SECTION);
		createEReference(messageEClass, MESSAGE__GRID_DEFINITION_SECTION);
		createEReference(messageEClass, MESSAGE__PRODUCT_DEFINITION_SECTION);
		createEReference(messageEClass, MESSAGE__DATA_REPRESENTATION_SECTION);
		createEReference(messageEClass, MESSAGE__BIT_MAP_SECTION);
		createEReference(messageEClass, MESSAGE__DATA_SECTION);

		gribFileEClass = createEClass(GRIB_FILE);
		createEAttribute(gribFileEClass, GRIB_FILE__GRIB_FILE);
		createEReference(gribFileEClass, GRIB_FILE__MESSAGE);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private boolean isInitialized = false;

	/**
	 * Complete the initialization of the package and its meta-model.  This
	 * method is guarded to have no affect on any invocation but its first.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public void initializePackageContents() {
		if (isInitialized) return;
		isInitialized = true;

		// Initialize package
		setName(eNAME);
		setNsPrefix(eNS_PREFIX);
		setNsURI(eNS_URI);

		// Obtain other dependent packages
		org.mro.grib.model.files.secondEdition.grids.GridsPackage theGridsPackage_1 = (org.mro.grib.model.files.secondEdition.grids.GridsPackage)EPackage.Registry.INSTANCE.getEPackage(org.mro.grib.model.files.secondEdition.grids.GridsPackage.eNS_URI);
		org.mro.grib.model.files.secondEdition.sections.SectionsPackage theSectionsPackage_1 = (org.mro.grib.model.files.secondEdition.sections.SectionsPackage)EPackage.Registry.INSTANCE.getEPackage(org.mro.grib.model.files.secondEdition.sections.SectionsPackage.eNS_URI);
		ProductsPackage theProductsPackage = (ProductsPackage)EPackage.Registry.INSTANCE.getEPackage(ProductsPackage.eNS_URI);
		DataRepresentationsPackage theDataRepresentationsPackage = (DataRepresentationsPackage)EPackage.Registry.INSTANCE.getEPackage(DataRepresentationsPackage.eNS_URI);

		// Add subpackages
		getESubpackages().add(theGridsPackage_1);
		getESubpackages().add(theSectionsPackage_1);
		getESubpackages().add(theProductsPackage);
		getESubpackages().add(theDataRepresentationsPackage);

		// Create type parameters

		// Set bounds for type parameters

		// Add supertypes to classes

		// Initialize classes and features; add operations and parameters
		initEClass(messageEClass, Message.class, "Message", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
		initEAttribute(getMessage_StartOffset(), ecorePackage.getELong(), "startOffset", null, 1, 1, Message.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
		initEAttribute(getMessage_EndOffset(), ecorePackage.getELong(), "endOffset", null, 1, 1, Message.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
		initEReference(getMessage_IndicatorSection(), theSectionsPackage_1.getIndicatorSection(), null, "indicatorSection", null, 1, 1, Message.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
		initEReference(getMessage_IdentificationSection(), theSectionsPackage_1.getIdentificationSection(), null, "identificationSection", null, 1, 1, Message.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
		initEReference(getMessage_LocalUseSection(), theSectionsPackage_1.getLocalUseSection(), null, "localUseSection", null, 0, -1, Message.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
		initEReference(getMessage_GridDefinitionSection(), theSectionsPackage_1.getGridDefinitionSection(), null, "gridDefinitionSection", null, 1, -1, Message.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
		initEReference(getMessage_ProductDefinitionSection(), theSectionsPackage_1.getProductDefinitionSection(), null, "productDefinitionSection", null, 1, -1, Message.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
		initEReference(getMessage_DataRepresentationSection(), theSectionsPackage_1.getDataRepresentationSection(), null, "dataRepresentationSection", null, 1, -1, Message.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
		initEReference(getMessage_BitMapSection(), theSectionsPackage_1.getBitMapSection(), null, "bitMapSection", null, 1, -1, Message.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
		initEReference(getMessage_DataSection(), theSectionsPackage_1.getDataSection(), null, "dataSection", null, 1, -1, Message.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$

		initEClass(gribFileEClass, GRIBFile.class, "GRIBFile", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
		initEAttribute(getGRIBFile_GribFile(), ecorePackage.getEString(), "gribFile", null, 1, 1, GRIBFile.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
		initEReference(getGRIBFile_Message(), this.getMessage(), null, "message", null, 1, -1, GRIBFile.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$

		// Create resource
		createResource(eNS_URI);

		// Create annotations
		// http://www.eclipse.org/emf/2002/GenModel
		createGenModelAnnotations();
	}

	/**
	 * Initializes the annotations for <b>http://www.eclipse.org/emf/2002/GenModel</b>.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected void createGenModelAnnotations() {
		String source = "http://www.eclipse.org/emf/2002/GenModel"; //$NON-NLS-1$		
		addAnnotation
		  (messageEClass, 
		   source, 
		   new String[] {
			 "description", "Grib Message Edition 2", //$NON-NLS-1$ //$NON-NLS-2$
			 "note_1", "GRIB is the name of a data representation form for general regularly distributed information in binary.", //$NON-NLS-1$ //$NON-NLS-2$
			 "note_2", "Data encoded in GRIB consists of a continuous bit-stream made of a sequence of octets (1 octet = 8 bits).", //$NON-NLS-1$ //$NON-NLS-2$
			 "note_3", "The octets of a GRIB message are grouped in sections:\r\nSection number \t\t\tName \t\t\t\t\t\t\t\t\t\tContents\r\n0 \t\t\t\t\t\tIndicator section \t\t\u201cGRIB\u201d, discipline, GRIB edition number, length of message\r\n1 \t\t\t\t\t   Identification section \t\tLength of section, section number, characteristics that apply to all\r\n\t\t\t\t\t\t\t\t\t\t\t\tprocessed data in the GRIB message\r\n2 \t\t\t\t     Local use section (optional)   Length of section, section number, additional items for local use by\r\n\t\t\t\t\t\t\t\t\t\t\t\toriginating centres\r\n3 \t\t\t\t \t Grid definition section \t\tLength of section, section number, definition of grid surface and\r\n\t\t\t\t\t\t\t\t\t\t\t\tgeometry of data values within the surface\r\n4 \t\t\t\t     Product definition section \tLength of section, section number, description of the nature of the\r\n\t\t\t\t\t\t\t\t\t\t\t\tdata\r\n5 \t\t\t\t    Data representation section \tLength of section, section number, description of how the data\r\n\t\t\t\t\t\t\t\t\t\t\t\tvalues are represented\r\n6 \t\t\t\t\t\tBit-map section \t\tLength of section, section number, indication of presence or absence\r\n\t\t\t\t\t\t\t\t\t\t\t\tof data at each of the grid points, as applicable\r\n7 \t\t\t\t\t\t   Data section \t\t\tLength of section, section number, data values\r\n8 \t\t\t\t\t\t    End section \t\t\t\u201c7777\u201d", //$NON-NLS-1$ //$NON-NLS-2$
			 "note_4", "Sequences of GRIB sections 2 to 7, sections 3 to 7 or sections 4 to 7 may be repeated within a single GRIB\r\nmessage. All sections within such repeated sequences must be present and shall appear in the numerical\r\norder noted above. Unrepeated sections remain in effect until redefined.", //$NON-NLS-1$ //$NON-NLS-2$
			 "note_5", "It will be noted that the GRIB code is not suitable for visual data recognition without computer interpretation.", //$NON-NLS-1$ //$NON-NLS-2$
			 "note_6", "The representation of data by means of a series of bits is independent of any particular machine representation.", //$NON-NLS-1$ //$NON-NLS-2$
			 "note_7", "(7) Message and section lengths are expressed in octets. Octets are numbered 1, 2, 3, etc., starting at the beginning\r\nof each section. Therefore, octet numbers in a template refer to the respective section.", //$NON-NLS-1$ //$NON-NLS-2$
			 "note_8", "Bit positions within octets are referred to as bit 1 to bit 8, where bit 1 is the most significant and bit 8 is the least\r\nsignificant. Thus, an octet with only bit 8 set to 1 would have the integer value 1.", //$NON-NLS-1$ //$NON-NLS-2$
			 "note_9", "As used in \u201cGRIB\u201d, \u201cInternational Alphabet No. 5\u201d is regarded as an 8-bit alphabet with bit 1 set to zero.", //$NON-NLS-1$ //$NON-NLS-2$
			 "note_10", "The IEEE single precision floating point representation is specified in the standard ISO/IEC 559\u20131985 and ANSI/IEEE\r\n754\u20131985 (R1991), which should be consulted for more details. The representation occupies four octets and is:\r\n\r\nseeeeeee emmmmmmm mmmmmmmm mmmmmmmm\r\nwhere:\r\ns is the sign bit, 0 means positive, 1 negative\r\ne...e is an 8 bit biased exponent\r\nm...m is the mantissa, with the first bit deleted.\r\n\r\nThe value of the number is given by the following table:\r\ne...e \t\t\tm...m \t\t\tValue of number\r\n   0 \t\t\t\t  Any \t\t\t(\u20131)s (m...m)2\u2013232\u2013126 = (\u20131)s(m...m)2\u2013149\r\n1...254 \t\t\t  Any \t\t\t(\u20131)s (1.0 + (m...m)2\u201323)2((e...e)\u2013127)\r\n255 \t\t\t     0 \t\t\tPositive (s=0) or Negative (s=1) infinity\r\n255 \t\t\t   >0 \t\t\tNaN (Not a valid Number, result of illegal operation)\r\n\r\nNormally, only biased exponent values from 1 through 254 inclusive are used, except for positive or negative zero\r\nwhich is represented by setting both the biased exponent and the mantissa to 0.\r\nThe numbers are stored with the high-order octet first. The sign bit will be the first bit of the first octet. The low-order\r\nbit of the mantissa will be the last (eighth) bit of the fourth octet.\r\n\r\nThis floating point representation has been chosen because it is in common use in modern computer hardware.\r\nSome computers use this representation with the order of the octets reversed. They will have to convert the\r\nrepresentation, either by reversing the octets or by computing the floating point value directly using the above\r\nformulas.", //$NON-NLS-1$ //$NON-NLS-2$
			 "regulation_92.1.1", "The GRIB code shall be used for the exchange and storage of general regularly distributed\r\ninformation expressed in binary form.", //$NON-NLS-1$ //$NON-NLS-2$
			 "regulation_92.1.2", "The beginning and the end of the code shall be identified by 4 octets coded according to\r\nthe International Alphabet No. 5 to represent the indicators \u201cGRIB\u201d and \u201c7777\u201d in Indicator\r\nsection 0 and End section 8, respectively. All other octets included in the code shall\r\nrepresent data in binary form.", //$NON-NLS-1$ //$NON-NLS-2$
			 "regulation_92.1.3", "Each section included in the code shall always end on an octet boundary. This rule shall be\r\napplied by appending bits set to zero to the section, where necessary.", //$NON-NLS-1$ //$NON-NLS-2$
			 "regulation_92.1.4", "All bits set to \u201c1\u201d for any value indicates that value is missing. This rule shall not apply to\r\npacked data.", //$NON-NLS-1$ //$NON-NLS-2$
			 "regulation_92.1.5", "If applicable, negative values shall be indicated by setting the most significant bit to \u201c1\u201d.", //$NON-NLS-1$ //$NON-NLS-2$
			 "regulation_92.1.6", "Latitude, longitude and angle values shall be in units of 10\u20136 degree, except for specific\r\ncases explicitly stated in some grid definitions.", //$NON-NLS-1$ //$NON-NLS-2$
			 "regulation_92.1.7", "The latitude values shall be limited to the range 0 to 90 degrees inclusive. The orientation\r\nshall be north latitude positive, south latitude negative. Bit 1 is set to 1 to indicate south\r\nlatitude.", //$NON-NLS-1$ //$NON-NLS-2$
			 "regulation_92.1.8", "The longitude values shall be limited to the range 0 to 360 degrees inclusive. The orientation\r\nshall be east longitude positive, with only positive values being used.", //$NON-NLS-1$ //$NON-NLS-2$
			 "regulation_92.1.9", "The latitude and longitude of the first grid point and the last grid point shall always be given\r\nfor regular grids.", //$NON-NLS-1$ //$NON-NLS-2$
			 "regulation_92.1.10", "Vector components at the North and South Poles shall be coded according to the following\r\nconventions.", //$NON-NLS-1$ //$NON-NLS-2$
			 "regulation_92.1.10.1", "If the resolution and component flags in section 3 (Flag table 3.3) indicate that the vector\r\ncomponents are relative to the defined grid, the vector components at the Pole shall be\r\nresolved relative to the grid.", //$NON-NLS-1$ //$NON-NLS-2$
			 "regulation_92.1.10.2", "Otherwise, for projections where there are multiple points at a given pole, the vector\r\ncomponents shall be resolved as if measured an infinitesimal distance from the Pole at the\r\nlongitude corresponding to each grid point. At the North Pole, the West to East (x direction)\r\ncomponent at a grid point with longitude L shall be resolved along the meridian 90 degrees\r\nEast of L, and the South to North (y direction) component shall be resolved along the\r\nmeridian 180 degrees from L. At the South Pole, the West to East component at a grid point\r\nwith longitude L shall be resolved along the meridian 90 degrees East of L and the South to\r\nNorth component shall be resolved along L.", //$NON-NLS-1$ //$NON-NLS-2$
			 "regulation_92.1.10.3", "Otherwise, if there is only one Pole point, either on a cylindrical projection with all but one\r\nPole point deleted, or on any projection (such as polar stereographic) where the Pole maps\r\nto a unique point, the West to East and South to North components shall be resolved along\r\nlongitudes 270\u00b0 and 0\u00b0, respectively at the North Pole and along longitudes 270\u00b0 and 180\u00b0,\r\nrespectively at the South Pole.\r\nNote: This differs from the treatment of the Poles in the WMO traditional alphanumeric codes.", //$NON-NLS-1$ //$NON-NLS-2$
			 "regulation_92.1.11", "The first and last grid points shall not necessarily correspond to the first and last data\r\npoints, respectively, if the bit-map is used.", //$NON-NLS-1$ //$NON-NLS-2$
			 "regulation_92.1.12", "Items in sections 3 and 4 which consist of a scale factor F and a scaled value V are related\r\nto the original value L as follows:\r\nL \u00d7 10F = V" //$NON-NLS-1$ //$NON-NLS-2$
		   });
	}

} //SecondEditionPackageImpl
